home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / k / kids7.dms / kids7.adf / beach.amos / beach.amosSourceCode < prev    next >
AMOS Source Code  |  1992-10-04  |  7KB  |  207 lines

  1. Dim ALPH$(10),WORD$(20),DUN(20)
  2. Global ALPH$(),WORD$(),DUN()
  3. Global LEVEL,HT$,HT,TIDE,CHK,LX,WORDLEN,COUNT,MZ,MK,ANSWER$
  4. Global AMR$,AMW$,AMO$,PSW,WIX,SCORE,NAME$,XX$
  5. STUP
  6. '
  7. Procedure STUP
  8.    Colour Back $F : STRIPPER : Unpack 10 To 0 : Screen Display 0,,32,, : Double Buffer : Make Icon Mask 
  9.    For N=1 To 15 : Channel N To Bob N : Next N : SPLASH
  10.    AMR$="A 0,(3,10)(4,10)(5,10)"
  11.    AMW$="L R1=XS(0,XM); L R2=R1-50; M R2,0,30" : AMO$="M R2,0,30;"
  12.    Get Fonts : Set Font 3 : HT$="HIGH TIDE: " : HT=99 : TIDE=False
  13.    Screen Open 1,320,47,32,Lowres : Screen To Back : Get Palette 0 : Cls 0 : Set Font 3 : Screen 0
  14.    REEDWORDS : For N=1 To 20 : DUN(N)=0 : Next N : Limit Mouse 147,130 To 415,131
  15.    SHOVE : X Mouse=163 : CHK=163 : PSW=5 : WIX=250
  16.    Repeat 
  17.       If HT<>999
  18.          BUCKET
  19.          GRABBUK
  20.       End If 
  21.    Until HT=999
  22.    Screen Close 1
  23.    DAVE
  24.    A$=NAME$+"|"+Str$(LEVEL)+"/"+XX$+"\"+Str$(SCORE) : Command Line$=A$
  25.    Run "KIDS-7:cards.amos"
  26. End Proc
  27. Procedure MAKECASTLE
  28.    Hide : WALKY : Amal Freeze 1 : Amal Freeze MZ : Reset Zone MZ : Restore L
  29.    For N=1 To WORDLEN-2 : Read LABEL$ : Next N : Restore LABEL$
  30.    For N=1 To COUNT : Read IX,IY,IM : Next N
  31.    XB=X Bob(MZ) : YB=Y Bob(MZ)
  32.    XX=IX-XB : YY=IY-YB : A$=AMR$+"M R5,R6,30" : Amal 1,A$ : B$="M R5,R6,30" : Amal MZ,B$
  33.    Amreg(1,5)=XX-10 : Amreg(1,6)=YY-10 : Amal On 1 : Amreg(MZ,5)=XX : Amreg(MZ,6)=YY : Amal On MZ
  34.    While Chanmv(1) or Chanmv(MZ) : Wend : Amal Off MZ
  35.    Amal Freeze 1 : Amal 1,"L R1=Y; L R2=Y-60; F R0=1 T R2; L Y=R1-R0; N R0" : Amal On 1
  36.    Bob MZ,,,2 : Wait 10 : Paste Bob IX,IY,IM : Bob MZ,IX,IY,IM : Inc COUNT
  37.    While Chanmv(1) : Wend : Amal Freeze 1 : WALKO : SHOVE : Show 
  38.    THREE: Data 100,150,6,132,150,7,160,150,8
  39.    FOUR: Data 105,165,7,132,138,10,160,138,10,188,165,7
  40.    FIVE: Data 90,150,6,123,150,7,151,123,10,179,150,7,209,150,8
  41.    SIX: Data 80,150,6,113,150,7,141,123,10,170,123,10,198,150,7,227,150,8
  42.    SEVEN: Data 70,150,6,104,150,7,132,150,7,160,123,10,188,150,7,217,150,7,245,150,8
  43.    L: Data "THREE","FOUR","FIVE","SIX","SEVEN"
  44. End Proc
  45. Procedure SPLASH
  46.    Screen 0 : Bob 15,-32,230,9
  47.    Amal 15,"L: M 0,-10,50; M 0,10,100; P; J L" : Amal On 15
  48. End Proc
  49. Procedure BUCKET
  50.    IX=0 : For N=1 To 10 : ALPH$(N)="" : Next N
  51.    Repeat 
  52.       ANSWER=Rnd(19)+1 : GOOD=False
  53.       If DUN(ANSWER)=0 : DUN(ANSWER)=1 : GOOD=True : End If 
  54.    Until GOOD
  55.    ANSWER$=WORD$(ANSWER) : WORDLEN=Len(ANSWER$) : TEXLEN=Text Length(ANSWER$) : TEXLEN=(320-TEXLEN)/2
  56.    Screen 0 : Cls 31,90,15 To 235,35 : I=31
  57.    For N=1 To WORDLEN*2
  58.       If I=31 Then I=2 Else I=31
  59.       If I=2 Then Sam Play 9,2,12000
  60.       Ink I : Text TEXLEN,32,ANSWER$
  61.       If I=2 Then Wait 25 Else Wait 10
  62.    Next N
  63.    For N=1 To WORDLEN
  64.       Repeat : X=Rnd(9)+1 : Until ALPH$(X)=""
  65.       T$=Mid$(ANSWER$,N,1) : ALPH$(X)=T$
  66.    Next N
  67.    For N=1 To 10
  68.       If ALPH$(N)=""
  69.          Repeat 
  70.             ALPH=Rnd(25)+1 : GOOD=True
  71.             For M=1 To WORDLEN
  72.                ACHK=Asc(Mid$(ANSWER$,M,1))-96
  73.                If ALPH=ACHK
  74.                   GOOD=False
  75.                End If 
  76.             Next M
  77.          Until GOOD
  78.          ALPH$(N)=Chr$(ALPH+96)
  79.       End If 
  80.    Next N
  81.    Screen 1
  82.    For N=1 To 10
  83.       TL=Text Length(ALPH$(N)) : TL=(28-TL)/2
  84.       Paste Bob IX,0,1 : Gr Writing 1 : Ink 12,13
  85.       Text IX+TL,28,ALPH$(N) : Gr Writing 8 : Ink 15
  86.       Text(IX+TL)-1,27,ALPH$(N)
  87.       Get Bob 1,N+10,IX,0 To IX+28,41 : Wait Vbl : Add IX,28
  88.    Next N
  89.    A1$="L: M 0,-5,50; M 0,5,50; P; J L" : A2$="L: M 0,10,50; M 0,-10,50; P; J L"
  90.    A$=A1$ : BX=30 : Screen 0
  91.    For N=11 To 20
  92.       Sam Play 9,2,8000
  93.       Bob N-9,BX,74,N : Wait Vbl : Add BX,28 : Amal N-9,A$ : Amal On N-9
  94.       If A$=A1$ Then A$=A2$ Else A$=A1$
  95.    Next N
  96. End Proc
  97. Procedure REEDWORDS
  98.    If LEVEL=1 Then T$="words1.dat"
  99.    If LEVEL=2 Then T$="words2.dat"
  100.    If LEVEL=3 Then T$="words3.dat"
  101.    Open In 1,"KIDS-7:bits/"+T$
  102.    For N=1 To 20 : Input #1,WORD$(N) : Next N
  103.    Close 1
  104. End Proc
  105. Procedure RIZER
  106.    If PSW=12000 Then PSW=8000 Else PSW=12000
  107.    Sam Play 6,1,PSW
  108.    If HT=9 Then HT$=HT$+" "
  109.    Text 90,71,HT$+Str$(HT)+" "
  110.    Dec HT
  111.    If HT=0
  112.       TIDE=True : Text 110,32,"Score:"+Str$(SCORE)
  113.       For N=1 To 5
  114.          Sam Play 6,1,8000
  115.          Text 90,71,"  HIGH  TIDE !  " : Wait 4
  116.          Sam Play 6,1,12000
  117.          Text 90,71,"                             " : Wait 2
  118.       Next N
  119.    Else 
  120.       Every On 
  121.    End If 
  122. End Proc
  123. Procedure GRABBUK
  124.    Ink 2 : Every 120 Proc RIZER : Every On : ZUPPY
  125.    COUNT=1
  126.    While COUNT<WORDLEN+1
  127.       Repeat 
  128.          If TIDE
  129.             Every Off : HT=999 : CLUB
  130.             Sam Play 15,3,6000
  131.             For N=230 To 110 Step -10
  132.                Bob 15,,N,9 : Wait Vbl : Cls 11,0,N+20 To 350,N+50 : Wait Vbl 
  133.             Next N
  134.             Pop Proc
  135.          End If 
  136.          MOUSEY_MOUSEY
  137.          MZ=Mouse Zone : MK=Mouse Key
  138.       Until(MK>0 and MZ>0) or HT=999
  139.       GUESS$=ALPH$(MZ-1)
  140.       Sam Play 9,4,2000
  141.       If GUESS$=Mid$(ANSWER$,COUNT,1)
  142.          MAKECASTLE
  143.          Add SCORE,10
  144.          If COUNT=WORDLEN+1
  145.             Paste Icon WIX,50,1 : Add WIX,10 : Add SCORE,25
  146.          End If 
  147.       Else 
  148.          COUNT=WORDLEN+1 : Add SCORE,-15
  149.       End If 
  150.    Wend 
  151.    FLOOD
  152. End Proc
  153. Procedure STRIPPER
  154.    A$=Command Line$ : A=Instr(A$,"|") : B=Instr(A$,"/") : C=Instr(A$,"\") : L=Len(A$)
  155.    NAME$=Left$(A$,A-1) : L$=Mid$(A$,A+1,B-A-1) : LEVEL=Val(L$)
  156.    XX$=Mid$(A$,B+1,C-B-1) : S$=Right$(A$,L-C) : SCORE=Val(S$) : Mid$(XX$,2,1)="."
  157. End Proc
  158. Procedure ZUPPY
  159.    Reserve Zone 11
  160.    TX=29 : BX=55
  161.    For N=2 To 11
  162.       Set Zone N,TX,69 To BX,120
  163.       Add TX,28 : Add BX,28
  164.    Next N
  165. End Proc
  166. Procedure FLOOD
  167.    CLUB
  168.    Sam Play 15,3,6000
  169.    For N=230 To 110 Step -10
  170.       Bob 15,,N,9 : Wait Vbl : Cls 11,0,N+20 To 350,N+50 : Wait Vbl 
  171.    Next N
  172.    Sam Play 15,3,8000
  173.    For N=110 To 230 Step 10
  174.       Bob 15,,N,9 : Wait 3 : Cls 17,0,N+10 To 350,N+30 : Wait 2
  175.    Next N
  176. End Proc
  177. Procedure CLUB
  178.    For N=2 To 11
  179.       Sam Play 9,2,9000
  180.       Bob Off N : Wait Vbl 
  181.    Next N
  182. End Proc
  183. Procedure MOUSEY_MOUSEY
  184.    LX=CHK
  185.    If X Mouse<LX-5 Then CHK=CHK-28
  186.    If X Mouse>LX+5 Then CHK=CHK+28
  187.    X Mouse=CHK
  188.    If LX<>CHK Then Sam Play 9,4,X Mouse*30
  189. End Proc
  190. Procedure SHOVE
  191.    Amal Freeze 1 : Bob 1,20,50,3
  192.    Amal 1,AMR$ : Amal On 1
  193. End Proc
  194. Procedure WALKY
  195.    Amal Freeze 1 : Amal 1,AMR$+AMW$ : Amal On 1
  196.    While Chanmv(1) : Wend 
  197. End Proc
  198. Procedure WALKO
  199.    Amal Freeze 1 : Amal 1,AMR$+AMO$
  200.    Amreg(1,2)=50-X Bob(1) : Amal On 1
  201.    While Chanmv(1) : Wend 
  202. End Proc
  203. Procedure DAVE
  204.    Sam Play 15,3,8000
  205.    Fade 3,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,$F,
  206.    Wait 22 : Sam Play 14,3,9000 : Wait 22 : Reserve Zone : Amal Off : Bob Off : Screen Close 0
  207. End Proc